package com.feature.learn.utils;

import java.util.ArrayList;
import java.util.List;

public enum ArgusNewRole {
    ArgusAdmin("admin", 1),

    ArgusOperationAdmin("OPS运维管理员", 2),

    OPCSUser("OPCS物资核销报表用户", 3),

    BKPDUser("BKPD外包装破损检测", 4),
    BRFDUser("BRFD面单解码补偿与异常诊断系统", 5),

    VPSDManager("VPSD违规码货_管理员", 6),
    VPSDViewer("VPSD违规码货_查看人", 10),

    BCLDManager("BCLD皮带机堵转_管理员", 11),
    BCLDViewer("BCLD皮带机堵转_查看人", 15),

    LPSSViewer("LPSS装载过程结构化分析-查看人", 16),

    VAPDSYTerminalManager("VAPD违规抛扔_速运终端管理员", 17),
    VAPDSYDepotManager("VAPD违规抛扔_速运中转场管理员", 18),
    VAPDKYDepotManager("VAPD违规抛扔_快运中转场管理员", 19),
    VAPDKYJPZManager("VAPD违规抛扔_快运集配站管理员", 20),
    VAPDViewer("VAPD违规抛扔_查看人", 21),

    ChouchaViewer("速运终端VAPD（违规抛扔）抽查配置管理员", 22),

    BAPTUser("BAPT巴枪辅助快件视频追溯", 23),

    EIASViewer("EIAS服务形象视频识别-事件查看", 24),
    EIASFXPTaskSender("SENDEIAS服务形象视频识别-丰形拍任务下发", 25),
    EIASSYTerminalManager("EIAS服务形象视频识别-速运终端处理人", 26),
    EIASSYDepotManager("EIAS服务形象视频识别-速运中转场处理人", 27),
    EIASKYJPZManager("EIAS服务形象视频识别-快运集配站处理人", 28),
    EIASKYDepotManager("EIAS服务形象视频识别-快运中转场处理人", 29),
    EIASPackingViewer("EIAS服务形象视频识别-包材查看", 30),

    SPFSViewer("SPFS门店客流统计查看人", 31),
    SPFSManager("SPFS门店客流统计区域配置人", 32),

    MDPViewer("MDP查看人", 38),
    MDPProcessor("MDP工单处理人", 39),
    MDPManager("MDP工单管理人", 40),

    SIXSViewer("6S管理", 41),
    CADSViewer("CADS清场异常检测", 42),
    PCSMViewer("PCSM查看人", 43),
    XRCDManager("XRCD管理员", 44),
    XRCDViewer("XRCD安检员", 45),
    BPSDSYZZCChouchaManager("速运中转场BPSD（人员上皮带机安全检测）抽查配置管理员", 46),
    BPSDKYZZCChouchaManager("快运中转场BPSD（人员上皮带机安全检测）抽查配置管理员", 47),
    BPSDSYZDChouchaManager("速运终端BPSD（人员上皮带机安全检测）抽查配置管理员", 48),
    BPSDKYJPZChouchaManager("快运集配站BPSD（人员上皮带机安全检测）抽查配置管理员", 49),
    VAPDSYZZCChouchaManager("速运中转场VAPD（违规抛扔）抽查配置管理员", 50),
    VAPDKYZZCChouchaManager("快运中转场VAPD（违规抛扔）抽查配置管理员", 51),
    VAPDKYJPZChouchaManager("快运集配站VAPD（违规抛扔）抽查配置管理员", 52),
    ChouchaViewerNew("抽查管理查看人", 53),
    BPSDViewer("BPSD（人员上皮带机安全检测）查看人", 54),
    MaintenanceManager("慧眼神瞳维养管理员", 55),
    BSCAViewer("BSCA(皮带机夹件检测)查看人", 56),
    MDPEditor("异常处理系统管理人", 57),
    PermissionManager("权限管理员", 1000);
    /**
     * 场区类型：速运中转场
     */
    public static final String DEPOT = "ZZC04-YJ";
    /**
     * 场区类型：快运集配站
     */
    public static final String FAST_EXPRESS = "DB05-JPZ";
    /**
     * 场区类型：快运中转场
     */
    public static final String FAST_EXPRESS_ZZC = "ZZC04-ERJ";
    /**
     * 场区类型：速运终端
     */
    public static final String TERMINAL = "DB05-DB";


    /**
     * 角色名称
     */
    String name;
    /**
     * 角色编号
     */
    Integer value;

    ArgusNewRole(String name, Integer value) {
        this.name = name;
        this.value = value;
    }

    public Integer getValue() {
        return this.value;
    }

    public String getName() {
        return this.name;
    }


    public static ArgusNewRole getRoleEnum(Integer value) {
        for (ArgusNewRole role : ArgusNewRole.values()) {
            if (role.getValue().intValue() == value.intValue()) {
                return role;
            }
        }
        return null;
    }

    //通过前缀返回角色id List
    public static List<Integer> getRoleIdListByPrefix(String prefix) {
        List<Integer> roleIdList = new ArrayList<>();

        for (ArgusNewRole role : ArgusNewRole.values()) {
            if (role.getName().startsWith(prefix)) {
                roleIdList.add(role.getValue());
            }
        }
        return roleIdList;
    }


}
